【20年品牌建站】找北京网站建设BOB游戏APP官网·(官网)登录入口就选新鸿儒/提供北京网站建设报价/北京网站制作/北京网站设计/网站开发、北京网站建设BOB游戏APP官网·(官网)登录入口电话【010-51267718】有优惠哦!
简体
繁体 简体
我们的服务遍布中国

我们的服务遍布中国
乃至世界

新鸿儒所服务的品牌地域与城市
北京 天津 上海 广州 深圳 香港 厦门 江苏 浙江 山东
重庆 长沙 武汉 成都 西安 宁夏 丽江 青海 云南 乌鲁木齐
黑龙江 内蒙古 河北 ...
新鸿儒服务与合作的全球各地
美国 加拿大 德国 法国 英国 瑞士 意大利 荷兰
印度 日本 韩国 ...

不论你的品牌在何处
我们都可以提供完善的服务与帮助

致电

010-51267718

嵌入式网站建设

发布时间:2013-11-22 浏览:216打印字号:

II. Shell
A.字符操作

1. 得到长度
x="abcd"
方法一:expr length $x  方法二: expr "$x" : ".*"

2. 查找子串的位置
x="abcd"
expr index $x "b"

3. 得到子串
x="abcdefgh"
expr substr "$x" 2 6    结果是:bcdef

4. 截取
方法一:
echo $a|cut -d',' -f3
cut:对标准输入的字符串进行处理
cut -bn-m:以byte为单位,从第n个byte开始,取m个
cut -bn,m:以byte为单位,截取第n,m个byte
cut -b-n,m:以byte为单位,截取1-n,和第m个
-c:以charactor为单位
-d:指定分隔符,默认为tab
-s:使标准输入中没有delimeter
cut -f1:截取第1个域
方法二:
expr substr “$a” 1 8    #  截取$a中的1到8个字符。
方法三:
${varible##*string} 从左向右截取最后一个string之后的字符串。
${varible%%string*} 从右向左截取最后一个string之后的字符串。
${varible#*string} 从左向右截取第一个string之后的字符串
${varible%string*} 从右向左截取第一个string之后的字符串

5.
grep -c 只输出匹配的行数。
grep -i 忽略大小写
grep -h 查询多文件时不显示文件名。
grep -H 显示文件名。
grep -l 查询多文件时只输出包含匹配字符的文件名。
grep -n 显示匹配行及行号。
grep -s 不显示不存在或不匹配文本的错误信息。
grep -v 显示不包含匹配文本的所有行。

[[:upper:]]    相当于[A-Z]
[[:lower:]]    相当于[a-z]
[[:alnum:]]    相当于[0-9a-zA-Z]
[[:digit:]]    相当于[0-9]
[[:alpha:]]    相当于[a-zA-Z]
[[:space:]]    相当于空格或tab健

6. awk和eval组合把一段有规律的字符串划分为若干个变量。
   eval `echo "$FORM_chkbox" | awk -F@ '{printf "y1=%s/ny2=%s/n",$1,$2}'`
   eval `echo "$FORM_chkbox" | awk -F@ '{printf "y1=%s y2=%s/n",$1,$2}'`
   实例:
   value="Long:/usb1-disk2/SAMBA/"
   eval $(echo $value | awk -F: '{printf "name=%s/npath=%s/n",$1,$2}')
6.1. awk实例
ifconfig eth0 | awk '$2~/[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}/'

7. eval 函数可以把两字符串重组然后再变成一个变量。
    a=123
    b=-----------2345
    eval temp=$a$b
    zhong123=adsfjsdgjsdjfgjksldjf
    eval temp1="zhong"$a
    eval temp2="$zhong"$a
    eval temp3="$""zhong"$a
    echo $temp                            //结果是:123-----------2345
    echo "$temp1"                        //结果是:zhong123
    echo "$temp2"                        //结果是:123          因为$zhong不存在。所以结果只有$a的值。
    echo "$temp3"                        //结果是:adsfjsdgjsdjfgjksldjf            这正是我想要的结果。

8.sed技巧
    sed 's@^/lib/ld-linux.so.2@/tools&@g'         ### "@" is a separate symbol.
    sed 's:/usr/local/bin:/bin:' configure.bak > configure    ### ":" is a separate.
    sed -e "$"d            ### remove the last line.
    $ sed -n 's/^test/mytest/p' example-----(-n)选项和p标志一起使用表示只打印那些发生替换的行。也就是说,如果某一行开头的test被替换成mytest,就打印它。
    $ sed 's/^192.168.0.1/&localhost/' example-----&符号表示替换换字符串中被找到的部份。所有以192.168.0.1开头的行都会被替换成它自已加 localhost,变成192.168.0.1localhost。

9.sed 实例
9.1. 替换文件中的内容。
    path=//usb1-disk1//Download//Bt
    a=$(sed -n "/Btstorepath=/=" usbnas.conf)
    sed -i -e "$a i/Btstorepath=$path" -e "$a"d usbnas.conf
或:
    path=/usb1-disk1/
    sed -i -e "/Btstorepath/i/Btstorepath=$path" -e "/Btstorepath/"d usbnas.conf

9.2. 替换文件中的内容。
    sed -i "s/runbtdownload.*/runbtdownload=yes/" usbnas.conf
    sed -i "s|Btstorepath=.*/(.*/)|Btstorepath=/1$path|" usbnas.conf
    sed -i "s|$variable=.*/(.*/)|$variable=/1$value|" usbnas.conf

B.shell 中固定次数的for循环。
1. n=10
   for i in `seq $n`
   do
   echo "$i"
   done

2.read和while结合用法
    #!/bin/sh
    logfile="/sdb/path.list"

    while read t1 t2 t3        ### read one line once, and each line has three elements, so here use three                     ###variables to contain the three elements.
    do
    echo [$t1] >> /etc/smb.conf
    echo "        comment="$discription"" >>  /etc/smb.conf
    echo "        path = "$t3"        " >>  /etc/smb.conf
    echo "        valid users = "$t2"" >>  /etc/smb.conf
    echo "   
    done  < $logfile        ### use standard input( < ) to input.

C. 创建swap文件
   cd /rdisk0/disk1/usb1-disk1
   dd if=/dev/zero of=./swapfile bs=1M count=64
   mkswap swapfile
   swapon swapfile    #turn on swap
   swapoff swapfile    #turn off swap

D.cp和mv技巧。
    cp configure{,.bak}        ### cp configure configure.bak
    mv configure{,.bak}        ### mv configure configure.bak

现在就与新鸿儒客服交流

010-51267718

您也可进行在线咨询或预约项目顾问
我要预约
在线咨询